package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.WmsStock;
import com.jy.wms.pojo.WmsStockFrozen;
import com.jy.wms.pojo.WmsStockFrozenDetailed;
import com.jy.wms.pojo.WmsStockFrozenOperation;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName: WmsStockFrozenMapper.java
 * @Description: 库存冻结主表
 * @Author Yjs
 * @Date Fri Dec 01 09:13:54 GMT+08:00 2017
 */
public interface WmsStockFrozenMapper extends BaseDao<WmsStockFrozen> {

    /**
     * 插入一条记录
     *
     * @param entity 实体对象
     * @return int
     */
    public Integer baseInsert(@Param("WmsStockFrozen") WmsStockFrozen entity);

    /**
     * 查询可冻结库存货品
     *
     * @param entity
     * @param stringList
     * @return
     */
    public List<WmsStockFrozenDetailed> searchHp(@Param("WmsStockFrozenDetailed") WmsStockFrozenDetailed entity, @Param("stringList") List<String> stringList);

    /**
     * 解冻专用查询库存冻结明细信息
     * @param entity
     * @return
     */
    public List<WmsStockFrozenDetailed> searchFrozenMx(@Param("WmsStockFrozen") WmsStockFrozen entity);

    /**
     * 库存冻结明细解冻
     *
     * @param id
     * @return
     */
    public Integer stockThaw(@Param("id") String id);

    /**
     * 更改库存冻结数量,总数量
     *
     * @param wmsStockFrozenDetailed
     * @return
     */
    public Integer updateKcDj2(@Param("WmsStockFrozenDetailed") WmsStockFrozenDetailed wmsStockFrozenDetailed);

    /**
     * 更改库存冻结记录(解冻人)
     *
     * @param id
     * @param name
     * @return
     */
    public Integer updateFrozenJl(@Param("id") String id, @Param("name") String name);

    /**
     * 更改库存冻结主表
     *
     * @param id
     * @param zt
     * @return
     */
    public Integer updateFrozen(@Param("id") String id, @Param("zt") String zt);

    /**
     * 查询明细
     *
     * @param id
     * @return
     */
    public WmsStockFrozenDetailed searchMx(@Param("id") String id, @Param("zt") String zt);

    /**
     * 查询明细
     *
     * @param zt
     * @param djid
     * @return
     */
    public List<WmsStockFrozenDetailed> searchMx2(@Param("zt") String zt, @Param("djid") String djid);

    /**
     * 插入一条记录（匹配有值的字段）
     *
     * @param entity 实体对象
     * @return int
     */
    public Integer baseInsertSelective(@Param("WmsStockFrozen") WmsStockFrozen entity);

    /**
     * 按冻结单号查询冻结信息
     *
     * @param djdh
     * @return
     */
    public WmsStockFrozen searchFrozen(@Param("djdh") String djdh);
    /**
     * 查询库存可冻结数量
     *
     * @param kwid
     * @return
     */
    public WmsStock searchKdjsl(@Param("kwid") String kwid);

    /**
     * 添加库存冻结明细
     *
     * @param wmsStockFrozenDetailed
     * @return
     */
    public Integer saveDjMx(@Param("WmsStockFrozenDetailed") WmsStockFrozenDetailed wmsStockFrozenDetailed);

    /**
     * 更改库存内冻结信息
     *
     * @param kcid
     * @param djsl
     * @return
     */
    public Integer updateKcDj(@Param("kcid") String kcid, @Param("djsl") String djsl);

    /**
     * 添加库存冻结记录信息
     *
     * @param wmsStockFrozenOperation
     * @return
     */
    public Integer saveDjJl(@Param("WmsStockFrozenOperation") WmsStockFrozenOperation wmsStockFrozenOperation);

    /**
     * 删除（根据主键ID删除）
     *
     * @param id 主键
     * @return int
     */
    public Integer baseDeleteByPrimaryKey(@Param("id") String id);

    /**
     * 删除库存冻结主表（根据ID 批量删除）
     *
     * @param list 主键ID列表
     * @return int
     */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> list);

    /**
     * 删除库存冻结明细（根据ID 批量删除）
     *
     * @param list 主键ID列表
     * @return int
     */
    public Integer deleteMx(@Param("list") List<String> list);

    /**
     * 删除库存冻结记录（根据ID 批量删除）
     *
     * @param wmsStockFrozenOperation 主键ID列表
     * @return int
     */
    public Integer deleteJl(@Param("WmsStockFrozenOperation") WmsStockFrozenOperation wmsStockFrozenOperation);

    /**
     * 还原库存冻结数量
     *
     * @param wmsStock
     * @return
     */
    public Integer updateKc(@Param("WmsStock") WmsStock wmsStock);
    /**
     * 还原库存冻结数量
     *
     * @param wmsStock
     * @return
     */
    public Integer updateKc2(@Param("WmsStock") WmsStock wmsStock);

    /**
     * 分页查询
     *
     * @param entity 实体
     * @return List<WmsStockFrozen>
     */
    public List<WmsStockFrozen> baseSelectPage(@Param("WmsStockFrozen") WmsStockFrozen entity);

    /**
     * 查询（根据主键ID查询）
     *
     * @param id 主键ID
     * @return User
     */
    public WmsStockFrozen baseSelectByPrimaryKey(@Param("id") String id);

    /**
     * 查询（根据ID 批量查询）
     *
     * @param idList 主键ID列表
     * @return list
     */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsStockFrozen> idList);

    /**
     * 修改 （匹配有值的字段）
     *
     * @param entity 主键ID列表
     * @return int
     */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsStockFrozen") WmsStockFrozen entity);

    /**
     * 修改（根据主键ID修改）
     *
     * @param entity 主键ID列表
     * @return int
     */
    public Integer baseUpdateByPrimaryKey(@Param("WmsStockFrozen") WmsStockFrozen entity);

    /**
     * 导出库存冻结信息查询
     *
     * @param entity
     * @return
     */
    public List<WmsStockFrozen> exportWmsStockFrozen(@Param("WmsStockFrozen") WmsStockFrozen entity);
}
